package com.yssoft.controller.app.inventory;

import com.yssoft.entity.inventory.TInstockApply;
import com.yssoft.service.inventory.InstockApplyService;
import com.yssoft.service.production.NonConformityService;
import com.yssoft.utils.AppUtil;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import java.util.List;
import java.util.Map;

/**
 * @类名称: InstockApplyController
 * @类描述: 入库申请管理控制器
 * @作者: 王永宁
 * @创建时间:2018年5月11日 下午4:36:50
 */
@CrossOrigin//解决跨域session问题
@Controller
@RequestMapping("/app/instock")
public class InstockApplyController {
    
    @Resource
    private InstockApplyService instockApplyService;
    
    @Resource
    private NonConformityService nonConformityService;
    
    /**
     * @方法名称: getInstockApplyList
     * @功能描述: 获取入库申请列表
     * @作者: 王永宁
     * @创建时间:2018年5月9日 下午5:33:38
     * @param page 当前页数
     * @param limit 每页条数
     * @param companyId 企业id
     * @param createTime 申请时间
     * @param stat 申请状态
     * @return Object
     */
    @RequestMapping(value = "getInstockApplyList",method = RequestMethod.GET)
    @ResponseBody
    public Object getInstockApplyList(int page, int limit, Integer companyId, String createTime,String stat) {
    	 if (null == companyId) {
             return AppUtil.returnMapJson("0", "查询失败，请传递企业id", null);
         } 
         try {
             List<Map<String, Object>> labelApplyList = instockApplyService.findPage(page, limit, companyId, createTime, stat);
             return AppUtil.returnListJson("1", "查询成功!", labelApplyList);
         } catch (NumberFormatException e) {
             return AppUtil.returnMapJson("0", "查询失败!"+e.getMessage(), null);
         }
    }
    
    /**
     * @方法名称: deleteInstockApply
     * @功能描述: 删除入库申请
     * @作者: 王永宁
     * @创建时间:2018年5月11日 下午11:33:38
     * @param id 入库申请id
     * @return Object
     */
    @RequestMapping(value = "deleteInstockApply",method = RequestMethod.GET)
    @ResponseBody
    public Object deleteInstockApply(Integer id) {
    
    	  try {
    		  instockApplyService.deleteInstockApply(id);
              return AppUtil.returnListJson("1", "删除成功!", null);
          } catch (NumberFormatException e) {
              return AppUtil.returnMapJson("0", "删除失败!"+e.getMessage(), null);
          }
    }
    
    /**
     * @方法名称: saveInstockApply
     * @功能描述: 保存入库申请
     * @作者: 王永宁
     * @创建时间:2018年5月11日 下午11:33:38
     * @param instockApply 入库申请实体
     * @param warehouseId 仓库id
     * @param tpId 商品类别id
     * @param pId 商品id
     * @return Object
     */
    @RequestMapping(value = "saveInstockApply",method = RequestMethod.POST)
    @ResponseBody
    public Object saveInstockApply(TInstockApply instockApply,Integer warehouseId,Integer tpId,Integer pId) {
    	  try {
    		  instockApplyService.saveInstockApply(instockApply,warehouseId,tpId,pId);
              return AppUtil.returnListJson("1", "保存成功!", null);
          } catch (NumberFormatException e) {
              return AppUtil.returnMapJson("0", "保存失败!"+e.getMessage(), null);
          }
    }
    
    
    /**
     * @方法名称: getOneById
     * @功能描述: 根据id获取入库申请单
     * @作者: 王永宁
     * @创建时间:2018年5月18日 下午7:03:38
     * @param id 入库申请id
     * @return Object
     */
    @RequestMapping(value = "getOneById",method = RequestMethod.POST)
    @ResponseBody
    public Object getOneById(Integer id) {
    	  try {
    		  Map<String, Object>	instockApply=  instockApplyService.getOneById(id);
              return AppUtil.returnMapJson("1", "保存成功!", instockApply);
          } catch (NumberFormatException e) {
              return AppUtil.returnMapJson("0", "保存失败!"+e.getMessage(), null);
          }
    }
    
    /**
     * 加入不合格品库保存
     * @作者: 王永宁
     * @创建时间:2018年9月8日08:57:08
     * @param id
     * @param warehouseId
     * @param teId
     * @return
     */
    @RequestMapping(value = "saveNoInstockApply",method = RequestMethod.POST)
    @ResponseBody
    public Object saveNoInstockApply(Integer id,Integer warehouseId,Integer teId,HttpServletRequest request) {
    	  try {
    		  nonConformityService.save(id,warehouseId,teId,request);
              return AppUtil.returnListJson("1", "保存成功!", null);
          } catch (NumberFormatException e) {
              return AppUtil.returnMapJson("0", "保存失败!"+e.getMessage(), null);
          }
    }
    
}
